using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using Business;
using DataTransferObject;

namespace Presentation
{
    public partial class FrmDangNhap :DevComponents .DotNetBar .Office2007RibbonForm 
    {
        clsNhanVienBUS NhanVienBUS = new clsNhanVienBUS();
        clsBoPhanBUS BoPhanBUS = new clsBoPhanBUS();
        clsBoPhanDTO BoPhanDTO = new clsBoPhanDTO();

        public FrmDangNhap()
        {
            InitializeComponent();
        }

        //Ẩn/Hiện thông tin đăng nhập.
        private void HienThongTinDangNhap(bool x)
        {
            txtX_Tendangnhap.Enabled = x;
            txtX_Matkhau.Enabled = x;
            cbobophan.Enabled = x;
        }

        //Load Danh sách bộ phân lên form.
        private void LoadDanhSachBoPhan()
        {
            DataTable dtBoPhan = new DataTable();

            dtBoPhan = BoPhanBUS.DanhSachBoPhan();
            cbobophan.DataSource = dtBoPhan;
            cbobophan.DisplayMember = "TENBP";
            cbobophan.ValueMember = "MABP";
        }

        private void FrmDangNhap_Load(object sender, EventArgs e)
        {
            rb_docgia.Checked = true;
            LoadDanhSachBoPhan();
            HienThongTinDangNhap(false);
        }

        private void btX_Dangnhap_Click(object sender, EventArgs e)
        {
            clsNhanVienDTO NhanVienDTO = new clsNhanVienDTO();
            String TenDangNhap;
            String MatKhau;
            String MaBP;
            bool KiemTra;

            if (rb_docgia.Checked)
            {
                this.Close();
                DangNhap.BoPhan = "";
                return;
            }

            TenDangNhap = txtX_Tendangnhap.Text;
            MatKhau = txtX_Matkhau.Text;
            MaBP = cbobophan.SelectedValue.ToString();

            KiemTra = NhanVienBUS.KiemTraTenDangNhap(TenDangNhap);
            if (!KiemTra)
            {
                DevComponents.DotNetBar.MessageBoxEx.Show("Tên đăng nhập không hợp lệ !!!", "Lỗi đăng nhập", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            KiemTra = NhanVienBUS.KiemTraDangNhap(TenDangNhap, MatKhau);
            if (!KiemTra)
            {
                DevComponents.DotNetBar.MessageBoxEx.Show("Mật khẩu không hợp lệ !!!", "Lỗi đăng nhập", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            NhanVienDTO = NhanVienBUS.KiemTraTaiKhoan(TenDangNhap, MatKhau, MaBP);
            if (NhanVienDTO == null)
            {
                BoPhanDTO = BoPhanBUS.TimBoPhanCuaNhanVien(TenDangNhap);
                DevComponents.DotNetBar.MessageBoxEx.Show("Tài khoản này thuộc bộ phận "+BoPhanDTO.TenBP+" !!!", "Lỗi đăng nhập", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            //Đăng nhập thành công.
            DangNhap.HoTen = NhanVienDTO.HoTen;
            DangNhap.TenDangNhap = TenDangNhap;
            DangNhap.MatKhau = MatKhau;
            DangNhap.BoPhan = MaBP.Trim();
            this.Close();

            //DevComponents.DotNetBar.MessageBoxEx.Show("Đăng nhập thành công !!!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
            //return;
        }

        private void rb_nhanvien_CheckedChanged(object sender, EventArgs e)
        {
            if (rb_nhanvien.Checked)
                HienThongTinDangNhap(true);
            else
                HienThongTinDangNhap(false);
        }      
        
        private void btX_Thoat_Click(object sender, EventArgs e)
        {
            DangNhap.Thoat = 1;
        }

        private void FrmDangNhap_FormClosed(object sender, FormClosedEventArgs e)
        {

        }
    }
}